package fichiers;

import espace_physique.*;
import java.util.*;
import javax.swing.*;
import support.*;


public class AdapteurGestionFichierListe extends AbstractListModel implements Observer{
    
    private ArrayList fichiers;
    private GestionnaireDeDossier gestionnaire;
    
    public AdapteurGestionFichierListe(GestionnaireDeDossier gestionnaire) {
        
        this.gestionnaire=gestionnaire;
        this.fichiers=new ArrayList();
        this.gestionnaire.addObserver(this);
        
    }
    
    public int getSize() {
        
        return this.fichiers.size();
    }
    
    public Object getElementAt(int index) {
        
        return this.fichiers.get(index);
        
    }
    
    public void ajouterElement(String path){
        
        int index=this.fichiers.indexOf(path);
        this.fichiers.remove(path);
        this.fireIntervalRemoved(this,index,index);
    }
    
    public void supprimerElement(String path){
        
        this.fichiers.add(path);
        this.fireIntervalAdded(this,getSize(),getSize());
    }
    
    public void update(Observable o, Object arg) {
        
        String path=((Element)arg).getFichierCourant().getAbsolutePath();
        
        if(this.fichiers.contains(path)){
            
            this.ajouterElement(path);
        } else{
            
            this.supprimerElement(path);
            
        }
        
    }
    
    
    
}
